"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.errorHandler = void 0;
const errorHandler = (error, req, res, next) => {
    console.error('错误详情:', error);
    // Mongoose 验证错误
    if (error.name === 'ValidationError') {
        const messages = Object.values(error.errors).map((err) => err.message);
        res.status(400).json({
            success: false,
            message: '数据验证失败',
            errors: messages
        });
        return;
    }
    // Mongoose 重复键错误
    if (error.code === 11000) {
        const field = Object.keys(error.keyValue)[0];
        res.status(400).json({
            success: false,
            message: `${field} 已存在`
        });
        return;
    }
    // JWT 错误
    if (error.name === 'JsonWebTokenError') {
        res.status(401).json({
            success: false,
            message: '无效的token'
        });
        return;
    }
    // 默认错误
    res.status(error.statusCode || 500).json({
        success: false,
        message: error.message || '服务器内部错误'
    });
};
exports.errorHandler = errorHandler;
